<!-- 第三方登陆 -->
<template>
	<view class='login-other'>
		<view class='other-text'>
			<view>或者用以下方式登录</view>
		</view>
		<view class='other'>
			<view class='other-item' @tap='loginOther("weixin")'>
				<image src="../../static/img/wx.png" mode=""></image>
				<view>微信登录</view>
			</view>
			<view class='other-item' @tap='loginOther("sinaweibo")'>
				<image src="../../static/img/wb.png" mode=""></image>
				<view>微博登录</view>
			</view>
			<view class='other-item' @tap='loginOther("qq")'>
				<image src="../../static/img/qq.png" mode=""></image>
				<view>QQ登录</view>
			</view>
		</view>
	</view>
</template>

<script>
	//（第三方登陆=已废弃） https://uniapp.dcloud.net.cn/api/plugins/login.html#login
	//（获取openId=已废弃） https://developers.weixin.qq.com/community/develop/doc/0002ec3ca70d2061cfdf6a72656800
	//1 获取用户信息
	//success: (res) => {
	// avatarUrl: "https://thirdwx.qlogo.cn/mmopen/vi_32/POgEwh4mIHO4nibH0KlMECNjjGxQUq24ZEaGT4poC6icRiccVGKSyXwibcPq4BWmiaIGuG1icwxaQX6grC9VemZoJ8rg/132"
	// city: ""
	// country: ""
	// gender: 0
	// language: ""
	// nickName: "微信用户"
	// province: ""
	//}
	// 2 请求登陆接口
	//模拟后端接口 
	// 60003  没有注册
	// 200 已经注册
	//3 前端请求后端 一键登陆接口 
	//3.1 把uni.login接口返回的code码给后端
	//3.2 后端会返回一个code码 这个code码是当前登陆用户是否注册过的

	//4 code码是60003的时候 我们要去注册
	// 4.1 调用后台给的注册接口 
	// 4.1.1 需要传递uni.getUserInfo(obj)返回用户信息
	// 2 注册成功 后端会返回code码 200 然后进入下一步
	// 5 code码是200的时候 我们要去判断用户是否绑定手机
	// 5.1
	import $http from '@/common/api/request.js'
	import {
		mapMutations
	} from 'vuex';
	export default {
		methods: {
			...mapMutations(['login']),
			// 微信登陆

			wxLogin() {
				
				wx.getUserProfile({
					desc: '必须授权才能继续使用', // 必填 声明获取用户个人信息后的用途，后续会展示在弹窗中
					success: (res) => {
						console.log('授权成功', res);
						// this.setData({
						// 	userInfo: res.userInfo
						// })
					},
					fail: (err) => {
						console.log('授权失败', err);
					}
				})
				
				
				uni.getUserInfo({ //1 获取用户信息
					desc: "登陆的数据",
					provider: 'weixin',
					success: (ures) => {
						console.log('用户昵称为222：', ures);
						console.log('用户昵称为：' + ures.userInfo.nickName);
						uni.login({ // 2 请求登陆接口
							success: (loginRes) => {
								let params = {
									code: loginRes.code
								}

					
								$http.request({
									url: "/u/loginByWechat",
									method: "GET",
									data: {
										code: params.code
									}
								}).then((res) => {
									console.log("ressss", res);
									//假如后端接正常 会返回code 和手机号
									// let { code, mobile } = res.data
									// 如果返回错误码为【60003】【微信小程序用户未注册】，则说明当前微信并没有在平台注册过用户，此时返回以下数据，
									//并执行第二步。如果返回【200】且【member.mobile】为空，
									//则说明当前微信登录成功但并没有在平台绑定手机号，此时应该跳转到绑定手机号页面
									// if (code == 60003) {
									// 	this.registerData = {
									// 		unionId: '123456',//后端接口返回
									// 		openId: '1234567',
									// 		sessionKey: ures.signature,
									// 		rawData: ures.rawData,
									// 		encryptedData: ures.encryptedData,
									// 		iv: ures.iv
									// 	}
									// 	this.register()
									// }else if (code == 200) {//当前用户注册了
									// 	this.mobile(mobile)
									// }
									//保存用户信息
									this.login(res);
									uni.navigateBack({
										delta: 1
									})

								}).catch(() => {
									uni.showToast({
										title: '请求失败',
										icon: 'none'
									})
								})
							}
						})
					}
				})
			},
			//新用户注册
			register() {
				console.log("注册成功0988");
				let registerData = this.registerData
				uni.request({
					url: "http://198.20.10.4:3000/api/tab_one/data",
					header: {
						"Content-Type": "application/json;charset=utf-8"
						// "Content-Type":"application/x-www-form-urlencoded",
					},
					data: {
						"restime": registerData
					},
					method: "GET",
					dataType: "json",
					success: (res) => {
						let datas = res
						let codetim = datas.data.code
						if (codetim === 200) {

							console.log("注册成功");
						} else {
							console.log("注册失败，重新注册");
						}
						console.log("resresres" + JSON.stringify(res))
					},
					fail: res => {
						console.log("res", res)
					},
					complete: res => {}
				})

			},
			//返回code是200是，保持toke 然后判断是否绑定了手机号码
			mobile(data) {
				// 保持用户toke
				uni.setStorageSync("toke", "95279527")
				uni.getStorageSync("toke")
				if (!data) {
					//没有绑定 就应该去绑定手机号页面
					this.showMobile()
					return
				} else {
					uni.switchTab({
						url: "/pages/index/index"
					})
				}
			},

			//调转到手机登陆界面
			showMobile() {
				uni.showModal({
					title: "提示",
					content: "更具国家法定法规，需要绑定手机号",
					confirmText: "去绑定",
					success: (res) => {
						console.log("res", res);
						if (res.confirm) { //去绑定
							uni.navigateTo({
								url: "/pagesA/iPhones/iPhones"
							})
						} else {
							uni.removeStorageSync("toke")
						}
					}
				})
			},


			loginOther(mode) {
				this.wxLogin()
				//已废弃
				// uni.login({
				// 	provider: mode,
				// 	success: (res) => {
				// 		console.log("ommm",res);
				// 		//接口已换 获取不到 authResult 里面的openId
				// 		uni.getUserInfo({
				// 			provider: mode, //得到的服务供应商
				// 			success: (res) => {
				// 				console.log("getUserInfo",res);
				// 				let provider = mode;
				// 				//openid==》用户身份
				// 				let openid = res.userInfo.openId || res.userInfo.openid;
				// 				let nickName = res.userInfo.nickName;
				// 				let avatarUrl = res.userInfo.avatarUrl;
				// 				$http.request({
				// 					url: "/loginother",
				// 					method: "POST",
				// 					data: {
				// 						provider,
				// 						openid,
				// 						nickName,
				// 						avatarUrl
				// 					}
				// 				}).then((res) => {
				// 					//保存用户信息
				// 					this.login(res);
				// 					uni.navigateBack({
				// 						delta: 1
				// 					})
				// 				}).catch(() => {
				// 					uni.showToast({
				// 						title: '请求失败',
				// 						icon: 'none'
				// 					})
				// 				})
				// 			}
				// 		})
				// 	}
				// })
			}
		}
	}
</script>

<style scoped>
	/*  其他登录方式  */
	.login-other {
		padding: 100rpx 0;
	}

	.other-text {
		display: flex;
		padding: 50rpx 0;
	}

	.other-text view {
		line-height: 0rpx;
		padding: 0 10rpx;
	}

	.other-text:after {
		flex: 1;
		content: '';
		height: 2rpx;
		background-color: #CCCCCC;
	}

	.other-text::before {
		flex: 1;
		content: '';
		height: 2rpx;
		background-color: #CCCCCC;
	}

	.other {
		display: flex;
		justify-content: space-around;
	}

	.other-item {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
	}

	.other-item image {
		width: 80rpx;
		height: 80rpx;
	}

	/*  其他登录方式  end  */
</style>